iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
Mobile Development

上班到一半突然被通知被炒了的我只好來寫個賓果系列 第 24

Day24 dialog什麼都不輸入按確定 閃退的問題

  • 分享至 

  • xImage
  •  

上次製作了一個可以輸入數字的dialog,但他本身還是有非常多的問題,今天就讓我們來一一解決,首先是沒有輸入任何東西會閃退這點,加個if去判斷就好了,但記得要轉換資料型態的話不要在這個if外面!!不要在這個if外面!!很重要所以說兩次(轉String可以,但轉int那些先不要)。

就會長這個樣子
https://ithelp.ithome.com.tw/upload/images/20220919/20140063KRjdFaltk8.png
onClick裡的程式:

if (etEditText.getText().toString().equals("")) {
} else {
   String strEdittext = etEditText.getText().toString();
   m_alBingoButtons.get(m_iNowIndex).getButton().setText(strEdittext.replaceAll("^(0+)", ""));
   m_alBingoButtons.get(m_iNowIndex).saveNumber(Integer.parseInt(strEdittext.replaceAll("^(0+)", "")));
}

這樣就可以解決沒有輸入東西給輸入框,結果閃退的問題啦。

再來就是範圍跟數字重複的問題了,這個前面有處理過了,可以去參考一下
https://ithelp.ithome.com.tw/upload/images/20220919/20140063GYFEdsZIlY.png

大致上就是長這樣,判斷範圍對不對,判斷完後去判斷數字是否重複,都跟前面很類似
onClick裡的程式:

if (etEditText.getText().toString().equals("")) {
} else {
   String strEditText = etEditText.getText().toString();
   BingoButton bingoButton = m_alBingoButtons.get(m_iNowIndex);
   int iEditText = Integer.parseInt(strEditText);
   if (Integer.parseInt(strEditText) > m_iSize * 10 || Integer.parseInt(strEditText) < 1) {
       showDialogOverRange();
   } else {

       boolean bCheck = true;
       for (int i = 0; i < m_iSize * m_iSize; i++) {
           if (strEditText.equals("")) {
               bCheck = false;
           } else if (iEditText == m_alBingoButtons.get(i).getNumber()) {
               showDialogRepeatNumber();
               bCheck = false;
               break;
           }
       }
       if (bCheck == true) {
           bingoButton.getButton().setText(strEditText.replaceAll("^(0+)", ""));
           bingoButton.saveNumber(Integer.parseInt(strEditText.replaceAll("^(0+)", "")));
       }
   }
}

這樣就完成輸入框了,現在看起來好像一切完美,但有些人的手機是不會鎖螢幕固定方向的,現在只要一旋轉螢幕就會出現問題,他會直接重新onCreate,這件事也會影響到遊戲體驗(如果有人不小心轉到的話),所以之後幾期會來探討要怎麼處理這個問題,以及處理完後出現的延伸問題。


上一篇
Day23 點開遊戲看到按鈕直覺上應該會直接按按鈕吧?奇怪怎麼沒反應 是不會壞了?為了避免這樣,只好設個dialog
下一篇
Day25 Android Studio翻轉螢幕 APP onCreate 的問題
系列文
上班到一半突然被通知被炒了的我只好來寫個賓果30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言